﻿#pragma once
#include <stdio.h>
#include <stdlib.h>
typedef int BTDataType;
typedef struct BinaryTreeNode {
	int root;
	struct BinaryTreeNode* LeftChild;
	struct BinaryTreeNode* RightChild;
}BT;
BT* CreatNode(BT* Node);
void Preorder(BT* Node);
//中序遍历(左 根 右）
void Inorder(BT* Node);
//后序  （左 右 根）
void Postorder(BT* Node);
//⼆叉树结点个数
int BinaryTreeSize(BT* Node);
// ⼆叉树叶⼦结点个数 
int BinaryTreeLeafSize(BT* Node);
// ⼆叉树第k层结点个数 
int BinaryTreeLevelKSize(BT* Node, int k);
//⼆叉树的深度/⾼度
int BinaryTreeDepth(BT* Node);
// ⼆叉树查找值为x的结点 
BT* BinaryTreeFind(BT* Node, BTDataType x);
// ⼆叉树销毁
void BinaryTreeDestory(BT** Node);

// 层序遍历

void LevelOrder(BT* Node);

